package com.zhuyp.spring.boot.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;


public interface BaseMapper<T,TE,M> {

    int insert(T record);

    int insertSelective(T record);

    int updateByPrimaryKeySelective(T record);

    int updateByPrimaryKey(T record);
    
    long countByExample(TE example);

    int deleteByExample(TE example);

    int deleteByPrimaryKey(Integer id);

    List<T> selectByExample(TE example);
    
    T selectByPrimaryKey(Integer id);

    int updateByExampleSelective(@Param("record") T record, @Param("example") TE example);

    int updateByExample(@Param("record") T record, @Param("example") TE example);
    
    public long countByT(T record);

	public int deleteByT(T record);

	public List<T> selectByT(T record);

	public int updateByTSelective(T record);

	public int updateByT(T record);
	
	public TE createExample(T record);
	
	public void setMapper(M m);

    
}
